import { navLinkType } from '@/common/setting/constVarsHelper.js';

/**
 * 全局混入型
 */
module.exports = {
    beforeCreate() {

    },
    data() {
        return {
            /**
             * 页面加载
             */
            pageLoading: true
        }
    },
    methods: {
        /**
         * //常用链接操作
         */

        //返回首页
        goHome() {
            uni.switchTab({ url: '/pages/index/default/default' });
        },
        //返回上一页
        goNavigateBack() {
            uni.navigateBack();
        },

        //路由跳转
        goRoute(url) {
            // 无参数
            this.$u.route(url);
        },
        goRoute(url, params) {
            // 带参数，传递的对象形式的参数，如{name: 'lisa', age: 18}
            this.$u.route(url, params);
        },
        //查看所在坐标地图位置
        goShopMap() {
            var reshipCoordinate = this.$store.state.config.reshipCoordinate;
            if (reshipCoordinate && reshipCoordinate.indexOf(",") != -1) {
                var arr = reshipCoordinate.split(',')
                this.$u.route('/pages/map/map', { id: 1, latitude: arr[0], longitude: arr[1], });
            }
        },
        //查看所在坐标地图位置
        goMapDetails(id, latitude, longitude) {
            this.$u.route('/pages/map/map', { id: id, latitude: latitude, longitude: longitude, });
        },
        goUserCenter() {
            this.$u.route({ url: '/pages/index/member/member', type: 'switchTab' });
        },
        goSearch() {
            this.$u.route({ url: '/pages/search/search', });
        },
        // 返回上一页
        toBackBtn() {
            var pages = getCurrentPages();
            if (pages.length > 1) {
                uni.navigateBack({
                    delta: 1
                });
            } else {
                this.$u.route({ type: 'switchTab', url: '/pages/index/default/default' });
            }
        },
        //返回操作处理
        toOnBackPress(options) {
            if (options.from === 'navigateBack') {
                return false
            }
            let loginPages = ['/pages/index/cart/cart', '/pages/index/member/member']
            let backPage = this.$store.state.redirectPage
            if (loginPages.indexOf(backPage) > -1) {
                this.$store.commit({
                    type: 'redirect',
                    page: ''
                })
                this.$u.route({ type: 'switchTab', url: '/pages/index/default/default' })
                return true
            }
        },
        //登录成功统一跳转处理
        toLoginSuccessHandleBack() {
            let redirect = this.$store.state.redirectPage
            this.$store.commit({
                type: 'redirect',
                page: ''
            })
            let switchTabs = ['/pages/index/default/default', '/pages/index/member/member']
            if (switchTabs.indexOf(redirect) > -1) {
                this.$u.route({ type: 'switchTab', url: redirect })
            } else if (redirect) {
                this.$u.route({ type: 'switchTab', url: redirect })
            } else {
                this.$u.route({ type: 'switchTab', url: '/pages/index/default/default' })
            }
        },

        // 购物车页面跳转
        redirectCart() {
            this.$u.route({
                type: 'switchTab',
                url: '/pages/index/cart/cart'
            });
        },

        /**
         * 订单接口信息
         */

        // 查看订单详情
        goOrderDetail(orderId) {
            this.$u.route('/pages/member/order/detail/detail', { orderId: orderId });
        },
        // 取消订单

        // 去支付
        goToPay(orderId) {
            this.$u.route('/pages/payment/pay/pay', { orderId: orderId, type: 1 });
        },
        // 确认收货

        // 去评价
        toEvaluate(orderId) {
            this.$u.route('/pages/member/order/evaluate/evaluate', { orderId: orderId });
        },
        // 申请售后

        // 查看物流信息
        goShowExpress(code, no, address = '', mobile = '') {
            let params = encodeURIComponent(
                'code=' + code + '&no=' + no + '&add=' + address + '&mobile=' + mobile
            )
            this.$u.route('/pages/member/order/expressDelivery/expressDelivery', { params: params });
        },


        /**
         * 商品接口信息
         */

        // 查看商品详情
        goGoodsDetail(goodsId) {
            this.$u.route('/pages/goods/goodDetails/goodDetails', { id: goodsId });
        },
        // 查看商品评论详情
        goGoodComments(goodsId) {
            this.$u.route('/pages/goods/goodComments/goodComments', { id: goodsId });
        },
        // 跳转商品列表页
        goGoodsList(obj = {}) {
            let url = '/pages/category/list/list'
            if (Object.keys(obj).length) {
                url = url + this.$u.queryParams(obj)
            }
            this.$u.route(url)
        },
        // 秒杀详情
        goSeckillDetail(id) {
            this.$u.route('/pages/activity/seckill/seckillDetails/seckillDetails', { id: id });
        },
        // 团购详情
        goGroupBuyingDetail(id) {
            this.$u.route('/pages/activity/groupBuying/groupBuyingDetails/groupBuyingDetails', { id: id });
        },
        //拼团详情页
        goPinTuanDetail(id, teamId) {
            if (teamId) {
                this.$u.route('/pages/activity/pinTuan/pinTuanDetails/pinTuanDetails', { id: id, teamId: teamId, });
            } else {
                this.$u.route('/pages/activity/pinTuan/pinTuanDetails/pinTuanDetails', { id: id });
            }
        },
        // 查看团购列表
        goGroupPurchase() {
            this.$u.route('/pages/activity/groupBuying/list/list')
        },
        // 查看秒杀列表
        goSeckillList() {
            this.$u.route('/pages/activity/seckill/list/list')
        },
        // 查看拼团列表
        goPinTuanList() {
            this.$u.route('/pages/activity/pinTuan/list/list')
        },


        /**
         * 文章接口
         */

        // 查看文章分类
        goArticleClassify(id) {
            this.$u.route('/pages/article/list/list', { id: id });
        },
        goArticleList() {
            this.$u.route('/pages/article/list/list')
        },
        // 查看文章详情
        goArticleDetail(id) {
            this.$u.route('/pages/article/details/details', { idType: 1, id: id });
        },

        /**
         * 公告接口
         */

        // 查看公告列表
        goNoticeList() {
            this.$u.route('/pages/notice/list/list')
        },
        // 查看公告详情
        goNoticeDetail(id) {
            this.$u.route('/pages/notice/details/details', { id: id });
        },

        // 前往用户协议
        goUserAgreementPage() {
            var id = this.$store.state.config.userAgreementId;
            this.$u.route('/pages/article/details/details', { idType: 1, id: id });
        },
        // 前往隐私协议
        goUserPrivacyPolicy() {
            var id = this.$store.state.config.privacyPolicyId;
            this.$u.route('/pages/article/details/details', { idType: 1, id: id });
        },
        // 关于我们
        goAboutUs() {
            let id = this.$store.state.config.aboutArticleId;
            this.$u.route('/pages/article/details/details', { idType: 1, id: id });
        },

        /**
         * 接龙接口信息
         */

        // 查看接龙详情
        goSolitaireDetail(id) {
            this.$u.route('/pages/activity/solitaire/solitaireDetails/solitaireDetails', { id: id });
        },
        // 查看服务列表
        goSolitaireList() {
            this.$u.route('/pages/activity/solitaire/list/list')
        },

        //服务接口信息
        goServicesDetail(serviceId) {
            this.$u.route('/pages/serviceGoods/details/details', { id: serviceId });
        },
        // 查看服务列表
        goServicesList() {
            this.$u.route('/pages/serviceGoods/index/index')
        },
        // 查看个人详情
        goServicesUserDetail(serviceId) {
            this.$u.route('/pages/member/serviceOrder/details/details', { id: serviceId });
        },


        /**
         * 广告相关
         */

        // 广告点击查看详情
        showSliderInfo(type, val) {
            if (!val) {
                return;
            }
            if (type == navLinkType.urlLink) {
                if (val.indexOf('http') != -1) {
                    // #ifdef APP-PLUS || APP-PLUS-NVUE || MP
                    this.$u.route('/pages/webview/webview', { src: val });
                    // #endif
                } else {
                    // #ifdef APP-PLUS || APP-PLUS-NVUE || MP
                    if (val == '/pages/index/default/default' || val == '/pages/category/index/index' || val == '/pages/index/cart/cart' || val == '/pages/index/member/member') {
                        this.$u.route({ type: 'switchTab', url: val });
                        return;
                    } else if (val.indexOf('/pages/coupon/coupon?id=') > -1) {
                        var id = val.replace('/pages/coupon/coupon?id=', "");
                        this.receiveCoupon(id)
                    } else {
                        this.$u.route(val);
                        return;
                    }
                    // #endif
                }
            } else if (type == navLinkType.shop) {
                // 商品详情
                this.$u.route('/pages/goods/goodDetails/goodDetails', { id: val });
            } else if (type == navLinkType.article) {
                // 文章详情
                this.$u.route('/pages/article/details/details', { idType: 1, id: val });
            } else if (type == navLinkType.articleCategory) {
                // 文章列表
                //this.$u.route('/pages/article/list/list')
                this.$u.route('/pages/article/category/category', { id: val });
            } else if (type == navLinkType.intelligentForms) {
                //自定义表单
                this.$u.route('/pages/form/details/details', { id: val });
            } else if (type == navLinkType.shopCategory) {
                //商品分类
                this.$u.route('/pages/category/list/list', { id: val });
            } else {
                this.$u.route(val);
            }
        },
        // 用户领取优惠券
        receiveCoupon(couponId) {
            uni.showLoading({
                title: '加载中',
                mask: true
            });
            let _this = this;
            let coreshopdata = {
                id: couponId
            }
            this.$u.api.getCoupon(coreshopdata).then(res => {
                if (res.status) {
                    uni.hideLoading();
                    _this.$refs.uToast.show({ message: res.msg, type: 'success', back: false })
                } else {
                    uni.hideLoading();
                    _this.$u.toast(res.msg)
                }
            })
        },


        /**
         * 工具函数
         */

        doCopyData(data) {
            var _this = this;
            uni.setClipboardData({
                data: data,
                success: function () {
                    _this.$u.toast('复制成功')
                }
            });
        },
        doPhoneCall() {
            var phome = this.$store.state.config.shopMobile || 0;
            if (phome != 0) {
                uni.makePhoneCall({
                    phoneNumber: phome
                });
            }
        },
        goBack() {
            //处理兼容，如果没有上一级界面则返回首页
            const pages = getCurrentPages();
            if (pages.length === 2) {
                uni.navigateBack({
                    delta: 1
                });
            } else if (pages.length === 1) {
                uni.switchTab({
                    url: '/pages/index/default/default',
                })
            } else {
                uni.navigateBack({
                    delta: 1
                });
            }
        },

    }
}
